Max Plugins
 
Over time I've created several 3DStudio Max plugins. They fall into two categories.
 
1) Those I created for the artists while working as a game developer at Sir-Tech Canada (working on Wizardry 8).
 
I can't have screenshots here, because I did the work for another company. But here is a quick run-down of the Max plugin work I did for Sir-Tech working on the game Wizardry 8.
 
First, I created a file format exporter to export a 3D level of the game. Artists created the game levels in 3DStudio Max, so there had to be some way to get those levels into the game. I wrote both the Max exporter and the game importer. I also implemented the functionality within the gaming engine to do the tasks the artists specified.
 
The artists wanted to control the environment of the games. They wanted lights that flickered, doors that opened and closed, train cars that following tracks, and many more. For these requirements I did things like:
 
  1.  Created light modifiers to add randomization patterns. I exported the parameters they chose, and made them happen in the graphics engine in the game.
  2.  Put the player on a track. The artist created a 3D spline in Max that they wanted the player to follow. I exported this path and within the game, once they trigger some event, they went for a ride along the predetermined path.
  3.  Triggers. Open a door. Cause an earthquake. Shoot a missile at the player. Many things like this are set up in Max and are exported. I also made them actually happen within the gaming engine.
  4.  Animated textures. I allowed artists to specify animated textures that would also be animated within the game.
  5.  many more...
 
2) Those I created to interface 3DStudio Max with RenderMan renderers.
 
First of all, here is a screenshot of 3DStudio Max showing two things:
 
  1. 1. The RIB file exporter dialog. A RIB file is a file format used by RenderMan compliant renderers (like PRMan, AIR, Exluna, 3Delight, Aqsis, etc) to render images.
  2. 2. My arealight modifier. This is a simple modifier that the exporter uses to recognize geometry which is to be treated as an arealight.
 
 
 
Here is a screenshot of the dialog showing options for rendering a scene using a RenderMan-compliant renderer a friend of mine wrote. He wrote the renderer, I wrote the plugin.
 
 
Now here is a screenshot of the material editor I created that both my RIB file exporter and the RenderMan renderer plugin used. This shows the main material editor and the different shaders you can apply to an object.
 
 
Now this next screenshot shows what you see once you click on the "VELVET.SL" button above. You can edit shader parameters. If the shader had an associated SLI file (a file that describes a shader) then you can also get information about the parameters like in this screenshot.
 
 
 
 
 
My 3D Application
 
Falcon is a 3D modeling and animation application I created.
 
Note that it could do the following:
 
   * revolve, skin, extrude NURBS
   * edit the construction curve from a revolve, skin, or extrude, after the fact
   * edit control vertices
   * group and ungroup objects
   * display in bounding box, wireframe, flat shaded, smooth shaded, and render form in a viewport
   * create lines in 3 different ways
   * animate control vertices and objects and material parameters, etc
   * more
 
 
 
 
Rendering Manager
 
I created a rendering manager to interface to a RenderMan renderer. RIBit is an application I created that does several things:
 
  1. Mainly, it's for rendering (multiple) RIB files using a RenderMan compliant render
       (which a friend of mine wrote).
  2. You can also edit RIB files.
  3. You can edit shader files (used by a RenderMan renderer to define a surface; they
       have an extension of "sl").
  4. You can preview what a shader file will look like.
 
You can see all of these things in this screenshot:
 
 
My 3D Programming